/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tk.eigh.ksvg.component.filter;

import ksvg.core.SVGFilter;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFComponent;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;

/**
 * <p>This filter primitive refers to a graphic external to this filter element,
 * which is loaded or rendered into an RGBA raster and becomes the result of the
 * filter primitive.</p> <p>This filter primitive can refer to an external image
 * or can be a reference to another piece of SVG. It produces an image similar
 * to the built-in image source <a
 * ">SourceGraphic</a> except that the graphic
 * comes from an external source.</p> <p>If the <a
 * href="http://www.w3.org/TR/SVG/filters.html#feImageElementHrefAttribute">‘xlink:href’</a> references a
 * stand-alone image resource such as a JPEG, PNG or SVG file, then the image
 * resource is rendered according to the behavior of the <a
 * href="struct.html#ImageElement">‘image’</a> element; otherwise, the
 * referenced resource is rendered according to the behavior of the <a
 * href="http://www.w3.org/TR/SVG/struct.html#UseElement">‘use’</a> element. In either case, the current
 * user coordinate system depends on the value of attribute <a
 * href="http://www.w3.org/TR/SVG/filters.html#FilterElementPrimitiveUnitsAttribute">‘primitiveUnits’</a>
 * on the <a href="http://www.w3.org/TR/SVG/filters.html#FilterElement">‘filter’</a> element. The
 * processing of the <a
 * href="http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute">‘preserveAspectRatio’</a>
 * attribute on the <a href="http://www.w3.org/TR/SVG/filters.html#feImageElement">‘feImage’</a> element
 * is identical to that of the <a href="http://www.w3.org/TR/SVG/struct.html#ImageElement">‘image’</a>
 * element.</p> <p>When the referenced image must be resampled to match the
 * device coordinate system, it is recommended that <a
 * href="http://www.w3.org/TR/SVG/conform.html#ConformingHighQualitySVGViewers">high quality viewers</a>
 * make use of appropriate interpolation techniques, for example bilinear or
 * bicubic. Depending on the speed of the available interpolents, this choice
 * may be affected by the <a
 * href="http://www.w3.org/TR/SVG/painting.html#ImageRenderingProperty">‘image-rendering’</a> property
 * setting.</p>
 */
@JSFComponent(name = "svg:Image",
type = "tk.eigh.svg.Image",
family = "filter.Image",
clazz = "ksvg.filter.Image",
tagClass = "ksvg.tags.filter.ImageTag",
defaultRendererType = "filter.SVGImageRenderer")
public abstract class AbstractImage extends SVGFilter {

    /**
     * <dl><dt>xlink:href = "<a
     * href="http://www.w3.org/TR/SVG/types.html#DataTypeIRI">&lt;iri&gt;</a>"</dt><dd> <p>An <a
     * href="http://www.w3.org/TR/SVG/linking.html#IRIReference">IRI reference</a> to the image
     * source.</p> <p><a href="http://www.w3.org/TR/SVG/animate.html#Animatable">Animatable</a>: yes.</p>
     * </dd></dl>
     */
    @JSFProperty
    public abstract String getFor();

    /**
     * <dl><dt> preserveAspectRatio = "<a
     * href="http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute">[defer] &lt;align&gt;
     * [&lt;meetOrSlice&gt;]</a>" </dt><dd> <p> See <a
     * href="http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute">‘preserveAspectRatio’</a>.
     * </p> <p> If attribute <a
     * href="http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute">‘preserveAspectRatio’</a>
     * is not specified, then the effect is as if a value of xMidYMid meet were
     * specified. </p> <p><a href="http://www.w3.org/TR/SVG/animate.html#Animatable">Animatable</a>:
     * yes.</p> </dd></dl>
     */
    @JSFProperty
    public abstract String getPreserveAspectRatio();
}